Page({
  data: {
    // 初始入学日期显示文本
    date: "请选择入学日期",
    // 系别选项当前选中的下标
    selectedOptionIndex: 0,
    // 系别列表
    deptarray: ['软件系', '电子系', '计算机系', '网络系'],
    // 图片预览路径（本地临时）
    pic: "",
    // 本地临时文件路径，用于上传
    file: "",
    // 云存储路径
    cloudPath: ""
  },

  // 入学日期选择器变更事件
  bindDateChange(e) {
    this.setData({ date: e.detail.value });
  },

  // 系别选择器变更事件
  bindPickerChange(e) {
    this.setData({ selectedOptionIndex: e.detail.value });
  },

  // 选择图片并准备上传路径
  getpic() {
    const that = this;
    wx.chooseMedia({
      count: 1, // 只选一张
      mediaType: ["image"],
      sourceType: ["album", "camera"], // 从相册或相机选
      success: res => {
        const tempFilePath = res.tempFiles[0].tempFilePath;
        const cloudPath = "students_files/" + Date.now() + ".jpg"; // 云存储路径

        // 设置本地预览路径、临时文件路径和云路径
        that.setData({
          pic: tempFilePath,
          file: tempFilePath,
          cloudPath: cloudPath
        });
      }
    });
  },

  // 提交表单事件
  studentAdd(e) {
    const that = this;
    const formData = e.detail.value; // 获取表单中输入的数据

    // 校验用户是否上传了图片
    if (!this.data.file || !this.data.cloudPath) {
      wx.showToast({
        icon: 'none',
        title: '请先上传学生图片'
      });
      return;
    }

    // 上传文件到云存储
    wx.cloud.uploadFile({
      cloudPath: this.data.cloudPath,  // 云存储路径
      filePath: this.data.file,        // 本地临时文件路径
      success: uploadRes => {
        const fileID = uploadRes.fileID; // 获取上传成功后的云文件ID

        // 上传学生数据到数据库
        wx.cloud.database().collection('Students').add({
          data: {
            name: formData.name, // 姓名
            age: formData.age,   // 年龄
            email: formData.email, // 邮箱
            department: that.data.deptarray[that.data.selectedOptionIndex], // 系别
            sex: formData.gender, // 性别
            hobbies: formData.hobbies, // 爱好（checkbox数组）
            date: that.data.date, // 入学日期
            pic: fileID,          // 云文件地址
            createTime: new Date() // 提交时间
          },
          success: () => {
      
            wx.switchTab({
              url: '/pages/detail/detail',//跳转到详情页
            })
            wx.showToast({
              title: '提交成功',
              duration:2000
            });
            // 提交后重置表单数据
            that.setData({
              date: "请选择入学日期",
              selectedOptionIndex: 0,
              pic: "",
              file: "",
              cloudPath: ""
            });
           
          },
          fail: err => {
            console.error('数据库写入失败:', err);
            wx.showToast({ icon: 'none', title: '提交失败' });
          }
        });
      },
      fail: err => {
        console.error('上传失败:', err);
        wx.showToast({ icon: 'none', title: '图片上传失败' });
      }
    });
  }
});
